<?php
	/*
		Eine simple Suche über HTML-Dateien
		Nur für PHP5

		Aktion: PHP Scripte für die armen dieser Welt
		Der Erlös geht für mein Pausenbrot drauf 

		Copyright (c) 2006 by Phillip 'Firebird' Berndt
	*/
	
?>
<h1>Suchen</h1>
<form method="get">
<p>
	<label>Suchen nach <input name="q" value="<?=htmlspecialchars($_GET['q'])?>"/></label>
	<input type="submit" />
</p>
</form>
<?php
	if(!$_GET['q'])
		die();	
?>
<h2>Suchergebnisse</h2>
<ul>
<?php
	// Die Suche arbeitet über Verzeichnisse rekursiv, daher muss sie
	// in einer Funktion liegen
	function search($dir)
	{
		// Verzeichnis lesen
		$odir = new DirectoryIterator($dir);
		while($odir->valid())
		{		
			// Dateien mit einem . (In Linux versteckte Dateien) übergehen
			if($odir->isDot())
			{
				$odir->next();
				continue;
			}
			// Verzeichnisse rekursiv aufrufen
			elseif($odir->isDir())
				search($odir->getPathName());
			// In html-Dateien suchen
			elseif(preg_match('/\.html?/i', $odir->getFilename()))
			{
				// Dafür den Textinhalt laden
				$content = strip_tags(file_get_contents($odir->getPathName()));
				// Darin nach $_GET['q'] suchen und bei Erfolg einen Link ausgeben
				if(stripos($content, $_GET['q']) !== false)
					echo('<li><a href="'.$odir->getPathName().'">'.$odir->getFilename().'</a></li>'.PHP_EOL);
			}
			
			$odir->next();
		}
	}
	search('./');
?>
</ul>